package edu.java.homework.hw09.exercises.salads.salads;

import edu.java.homework.hw09.exercises.salads.components.*;
import edu.java.homework.hw09.exercises.salads.products.*;

public class ShepherdSalad extends Salad {

    // --- Constructors ----------------------------------------------------
    public ShepherdSalad() {
	super();
    }

    public ShepherdSalad(Components components) {
	super(components);
    }

    public ShepherdSalad(Components components, int price) {
	super(components, price);
    }

    // --- Methods -------------------------------------------------------------
   
    @Override
    public String getSaladName() {
	return "Shepherd Salad";
    }
    
    @Override
    public final void prepareComponents() {
	// 100 гр домати, 50 гр краставици, 20 гр лук, 50 гр сладка царевица,
	// 50 гр печени чушки, 50 гр мариновани гъби, 3 маслинки за украса, 10
	// гр магданоз
	// 50 гр шунка,
	// 50 г кашкавал,50 гр сирене,
	// 1 сварено яйце,
	// 10 мл олио, 5 гр сол, 20 мл оцет.

	// vegetables
	VegetableComponent tomato = new VegetableComponent(Vegetable.TOMATO,
		100);
	VegetableComponent cucumber = new VegetableComponent(
		Vegetable.CUCUMBER, 50);
	VegetableComponent onion = new VegetableComponent(Vegetable.ONION, 20);
	VegetableComponent corn = new VegetableComponent(Vegetable.CORNS, 50);
	VegetableComponent bakedPaper = new VegetableComponent(
		Vegetable.BAKED_RED_PEPPER, 50);
	VegetableComponent mushrooms = new VegetableComponent(
		Vegetable.MARINADE_MUSHROOMS, 50);
	VegetableComponent olive = new VegetableComponent(Vegetable.OLIVE, 3);
	VegetableComponent parsley = new VegetableComponent(Vegetable.PARSLEY,
		10);
	VegetableComponent[] vegetables = new VegetableComponent[] { tomato,
		cucumber, onion, corn, bakedPaper, mushrooms, olive, parsley };

	// meat
	MeatComponent ham = new MeatComponent(MeatProduct.HAM, 50);
	MeatComponent[] meatComponents = new MeatComponent[] { ham };

	// milk
	MilkComponent whiteCheese = new MilkComponent(MilkProduct.WHITE_CHEESE,
		50);
	MilkComponent yellowCheese = new MilkComponent(
		MilkProduct.YELLOW_CHEESE, 50);
	MilkComponent[] milkComponents = new MilkComponent[] { whiteCheese,
		yellowCheese };

	// eggs
	EggComponent eggs = new EggComponent(EggProduct.BOILED_EGG, 1);
	EggComponent[] eggComponents = new EggComponent[] { eggs };

	// spices
	SpiceComponent oil = new SpiceComponent(Spice.SUNFLOWER_OIL, 10);
	SpiceComponent salt = new SpiceComponent(Spice.SALT, 5);
	SpiceComponent vinegar = new SpiceComponent(Spice.VINEGARD, 20);
	SpiceComponent[] spices = new SpiceComponent[] { oil, salt, vinegar };

	// instantiate Components object
	Components components = new Components(vegetables, null,
		meatComponents, milkComponents, eggComponents, spices);
	this.setComponents(components);
    }
}
